import { createRouter, createWebHashHistory } from 'vue-router'
import store from '@/store/index'
import { removeToken } from '@/utils/auth'

// 开启历史模式
// vue2中使用 mode: history 实现
const routerHash = createWebHashHistory()

const router = createRouter({
  history: routerHash,
  routes: [
    {
      path: '/',
      redirect: '/home'
    },
    {
      path: '/home',
      component: () => import('../views/home/home.vue'),
      meta: { requireAuth: true }
    },
    {
      path: '/login',
      component: () => import('../views/login/login.vue'),
      meta: { requireAuth: true }
    }
  ]
})

router.beforeEach((to, from, next) => {
  const token = store.getters.token
  // window.console.log(token)
  // 存在 token 说明已经登录
  if (token) {
    // 登录过就不能访问登录界面，需要中断这一次路由守卫，执行下一次路由守卫，并且下一次守卫的to是主页'
    if (to.path === '/login') {
      // window.console.log(to)
      next({ path: to.fullPath == '/login' ? '/' : to.fullPath })
    } else {
      next()
    }
  } else {
    // 未登录时，注意 ：在这里也许你的项目不只有 login 不需要登录 ，register 等其他不需要登录的页面也需要处理
    if (to.path !== '/login') {
      next({
        path: '/login',
        query: {
          redirect: to.fullPath
        }
      })
    } else {
      next()
    }
  }
})

export function resetRouter() {
  // removeToken()
  router.push('/login')
}

export default router
